var fs = require("fs");

// 详解fs文件系统


// fs.open(path, flags[, mode], callback)
// 异步打开文件
console.log("准备打开文件！");
fs.open('input.txt', 'r+', function(err, fd) {
  if (err) {
    return console.error(err);
  }
  console.log("文件打开成功！");
});

// 获取文件信息
// fs.stat(path, callback),根据回调函数中stats的方法来判断类型 返回true false
fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function(err, stats) {
  console.log(stats.isFile()); //true
  //stats.isFile()  如果是文件返回 true，否则返回 false。
})

// 写入文件
// fs.writeFile(file, data[, options], callback)


// 读取文件
// fs.read(fd, buffer, offset, length, position, callback)

//关闭文件
// fs.close(fd, callback)

// 读取和关闭中的fd都为open打开的fd，就是需要先打开文件再操作如下：
// var fs = require("fs");
// var buf = new Buffer(1024);

// console.log("准备打开文件！");
// fs.open('input.txt', 'r+', function(err, fd) {
//    if (err) {
//        return console.error(err);
//    }
//    console.log("文件打开成功！");
//    console.log("准备读取文件！");
//    fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
//       if (err){
//          console.log(err);
//       }

//       // 仅输出读取的字节
//       if(bytes > 0){
//          console.log(buf.slice(0, bytes).toString());
//       }

//       // 关闭文件
//       fs.close(fd, function(err){
//          if (err){
//             console.log(err);
//          }
//          console.log("文件关闭成功");
//       });
//    });
// });
